package com.hsnn.medstgmini.sys.information.dao;

import java.util.List;

import com.hsnn.medstgmini.sys.information.model.SysInfoAttachment;
import com.hsnn.medstgmini.sys.information.model.SysMessage;
import com.hsnn.medstgmini.sys.information.model.SysMessageRecp;
import com.hsnn.medstgmini.util.Pagination;

public interface SysMessageDao {

	/**
	 * @category 新建消息
	 * @author 韩守松
	 * @date   2015年11月9日
	 * @param  @param sysMessage
	 */
	void saveOrUpDate(SysMessage sysMessage);
	
	/**
	 * @category 获取草稿箱消息
	 * @author 韩守松
	 * @date   2015年11月9日
	 * @param  @param sysMessage
	 * @param  @return
	 */
	Pagination getSysMessageList(Pagination page,SysMessage sysMessage);
	/**
	 * @category 获取发件箱消息
	 * @author 韩守松
	 * @date   2015年11月9日
	 * @param  @param sysMessage
	 * @param  @return
	 */
	Pagination getSysMessageSendList(Pagination page,SysMessage sysMessage);
	/**
	 * @category 获取收件箱消息
	 * @author 韩守松
	 * @date   2015年11月9日
	 * @param  @param sysMessage
	 * @param  @return
	 */
	Pagination getSysMessageReceList(Pagination page,SysMessage sysMessage);
	
	/**
	 * @category 根据消息id获取消息信息
	 * @author 韩守松
	 * @date   2015年11月10日
	 * @param  @param messageId
	 * @param  @return
	 */
	List<SysMessage> getSysMessageById(String messageId);

	/**
	 * @category 保存日志
	 * @author 韩守松
	 * @date   2015年11月11日
	 * @param  @param id
	 */
	void saveLog(String id);
	
	/**
	 * @category 根据消息id修改消息状态
	 * @author 韩守松
	 * @date   2015年11月11日
	 * @param  @param sysMessage
	 */
	void update(SysMessage sysMessage);
	
	/**
	 * @category 根据消息id修改消息阅读状态
	 * @author 韩守松
	 * @date   2015年11月11日
	 * @param  @param sysMessage
	 */
	void updateReadStatus(SysMessage sysMessage);
	
	
	
	/**
	 * @category 根据消息id 获取附件表中的url
	 * @author 韩守松
	 * @date   2015年11月12日
	 * @param  @return
	 */
	List<SysInfoAttachment> getAllUrlsById(String messageId);
	/**
	 * @category 根据消息id 获取接收人表中的接收人信息
	 * @author 韩守松
	 * @date   2015年11月12日
	 * @param  @return
	 */
   List<SysMessageRecp> getAllReceUserById(String messageId);
   
   /**
    * @category 获取系统消息
    * @author 韩守松
    * @date   2015年11月16日
    * @param  @param page
    * @param  @param sysMessage
    * @param  @return
    */
   List<SysMessage> getSysMessageListByType(Pagination page,SysMessage sysMessage);
	
	/**
	 * @category 更新附件下载次数
	 * @author 韩守松
	 * @date   2015年11月17日
	 * @param  @param sysInfoAttachId
	 */
	void updateDownSum(String sysInfoAttachId,String userId);
}



